﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EnumerateListEx
{
    public class TodoRepository
    {
        #region Class/Instance variables

        private List<Todo> todoItems;
        private int currTodoId;

        #endregion

        #region Constructor
        public TodoRepository()
        {
            //Initialize stuff and things
            todoItems = new List<Todo>();
            currTodoId = 0;
        }
        #endregion

        #region Class/Instance Methods
        public int AddTodoItem(string text)
        {
            ++currTodoId;

            Todo t = new Todo();
            t.TodoText = text;
            t.Timestamp = DateTime.Now;
            t.Id = currTodoId;

            todoItems.Add(t);

            return t.Id;
        }

        public void DeleteTodoItem(int id)
        {            
            for (int i = 0; i < todoItems.Count; i++)
            {
                Todo t = todoItems[i];

                if (t.Id == id)
                {
                    todoItems.Remove(t);
                    break;
                }
            }
        }

        public List<Todo> GetTodoItems()
        {
            return todoItems;
        }

        public Todo UpdateTodoItem(int id, string text)
        {
            Todo t = todoItems.FirstOrDefault(f => f.Id == id);

            if (t != null)
            {
                t.TodoText = text;
            }

            return t;
        }

        #endregion
    }
}
